'\" te
.\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
.\" See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the
.\" fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH SPPPTUN 8 "May 27, 2009"
.SH NAME
sppptun \- PPP tunneling driver utility
.SH SYNOPSIS
.LP
.nf
\fBsppptun plumb\fR
.fi

.LP
.nf
\fBsppptun plumb\fR [\fB-s\fR \fIsap\fR] \fIprotocol device\fR
.fi

.LP
.nf
\fBsppptun unplumb\fR \fIinterface\fR
.fi

.LP
.nf
\fBsppptun query\fR
.fi

.SH DESCRIPTION
.sp
.LP
The \fBsppptun\fR utility is used to configure and query the Solaris PPP
tunneling device driver, \fB/dev/sppptun\fR. Currently, only PPP over Ethernet
(PPPoE) is supported, so the \fBplumb\fR and \fBunplumb\fR arguments are used
to specify Ethernet interfaces that are to be used for PPPoE, and the
\fBquery\fR option lists the plumbed interfaces.
.sp
.LP
The use of \fBsppptun\fR to add interfaces is similar to the use of
\fBifconfig\fR(8) to add interfaces to IP. The plumbing is done once for each
interface, preferably at system start-up time, and is not normally manipulated
on a running system. If multiple instances of PPP are run over a single
interface, they share the plumbing to that interface. Plumbing for each session
is not required (and not possible for PPPoE).
.sp
.LP
The proper way to plumb interfaces for PPPoE is to list the interfaces, one per
line, in the \fB/etc/ppp/pppoe.if\fR file. If alternate Ethertype (SAP) values
are necessary, then include the PPPoE Session and Discovery Stage values as
hexadecimal on the same line. The line format is:
.sp
.in +2
.nf
\fIinterface\fR [\fIsession\fR [\fIdiscovery\fR]]
.fi
.in -2
.sp

.sp
.LP
The defaults are the Ethertypes specified in RFC 2516, and most users should
not need to set these values. See the examples for one possible use.
.SH USAGE
.sp
.ne 2
.na
\fB\fBsppptun plumb\fR\fR
.ad
.sp .6
.RS 4n
When specified with no additional arguments, the plumb argument lists the
protocols that are supported by the utility. These are the strings that are
used as the \fIprotocol\fR argument below.
.RE

.sp
.ne 2
.na
\fB\fBsppptun plumb [\fB-s\fR \fIsap\fR] \fIprotocol\fR \fIdevice\fR\fR\fR
.ad
.sp .6
.RS 4n
This plumbs a new interface into the driver. The \fIprotocol\fR parameter is
\fBpppoe\fR for the PPP-carrying "Session Stage" connection or \fBpppoed\fR for
the PPPoE "Discovery Stage" connection. Both connections must be present for
each Ethernet interface that is to be used for PPPoE. The \fIdevice\fR
parameter is the path name of the Ethernet interface to use (use
\fBifconfig\fR(8) to list available devices). If the path begins with
\fB/dev/\fR, then this portion may be omitted.
.sp
The \fB-s\fR \fIsap\fR option can be specified to use an alternate Ethertype
(SAP) for the selected protocol. The \fIsap\fR value must be given in
hexadecimal. Some access servers use Ethertypes for PPPoE different from those
in RFC 2516. The defaults are 8864 for \fBpppoe\fR and 8863 for \fBpppoed\fR.
.RE

.sp
.ne 2
.na
\fB\fBsppptun unplumb \fIinterface\fR\fR\fR
.ad
.sp .6
.RS 4n
This removes an existing interface from the driver and terminates any PPP
sessions that were using the interface. The \fIinterface\fR parameter is the
name of the interface as reported when the interface was plumbed.
.RE

.sp
.ne 2
.na
\fB\fBsppptun query\fR\fR
.ad
.sp .6
.RS 4n
Displays the canonical names of all interfaces plumbed into the
\fB/dev/sppptun\fR device driver.
.RE

.SH EXAMPLES
.LP
\fBExample 1 \fRSetting up to Use PPPoE on \fBhme0\fR
.sp
.LP
Plumb the \fBhme0\fR interface.

.sp
.in +2
.nf
# \fBsppptun plumb pppoed hme0\fR
hme0:pppoed
# \fBsppptun plumb pppoe hme0\fR
hme0:pppoe
.fi
.in -2
.sp

.sp
.LP
Remove the \fBhme0\fR interface.

.sp
.in +2
.nf
# \fBsppptun unplumb hme0:pppoed\fR
# \fBsppptun unplumb hme0:pppoe\fR
.fi
.in -2
.sp

.LP
\fBExample 2 \fRScript to Remove All Plumbed Interfaces
.sp
.in +2
.nf
#!/bin/sh
for intf in `sppptun query`
do
        sppptun unplumb $intf
done
.fi
.in -2
.sp

.LP
\fBExample 3 \fRInteroperating with 3COM HomeConnect Dual Link ADSL
.sp
.in +2
.nf
# \fBdladm show-link\fR
LINK        CLASS    MTU    STATE    OVER
nge0        phys     1500   up       --
# \fBecho nge0 3c13 3c12 > /etc/ppp/pppoe.if\fR
.fi
.in -2
.sp

.SH EXIT STATUS
.sp
.LP
The following exit values are returned:
.sp
.ne 2
.na
\fB\fB0\fR\fR
.ad
.RS 5n
Successful completion.
.RE

.sp
.ne 2
.na
\fB\fB1\fR\fR
.ad
.RS 5n
One or more errors occurred.
.RE

.SH FILES
.sp
.ne 2
.na
\fB\fB/etc/ppp/pppoe.if\fR\fR
.ad
.RS 21n
list of Ethernet interfaces to be plumbed at boot time
.RE

.sp
.ne 2
.na
\fB\fB/usr/sbin/sppptun\fR\fR
.ad
.RS 21n
executable command
.RE

.sp
.ne 2
.na
\fB\fB/dev/sppptun\fR\fR
.ad
.RS 21n
Solaris PPP tunneling device driver
.RE

.SH SEE ALSO
.sp
.LP
.BR sppptun (4M),
.BR pppd (8),
.BR pppoec (8),
.BR pppoed (8)
.sp
.LP
\fIRFC 2516, Method for Transmitting PPP Over Ethernet (PPPoE)\fR, Mamakos et
al, February 1999
